home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d15 / infop141.arc / PAGE_11.PAS < prev    next >
Pascal/Delphi Source File  |  1990-12-07  |  1KB  |  51 lines

  1. procedure page_11;
  2.   var
  3.     temp, temp1, envseg, envlen, envused: word;
  4.     foundit, endfound: boolean;
  5.  
  6.   begin
  7.   caption2('Program name');
  8.   Writeln(ParamStr(0));
  9. {PC Magazine, Vol 8, no. 20 (11/28/89), pg 309, from Barry Simon}
  10.   temp:=MemW[PrefixSeg:$16];
  11.   foundit:=false;
  12.   while not foundit do
  13.     begin
  14.     temp1:=MemW[temp:$16];
  15.     if (temp1 = 0) or (temp1 = temp) then
  16.       foundit:=true
  17.     else
  18.       temp:=temp1
  19.     end;
  20.   envseg:=MemW[temp:$2C];
  21.   if (envseg = 0) or ((osminor > 19) and (osminor < 30)) then
  22.     envseg:=temp + MemW[temp-1:3] + 1;
  23.   envlen:=MemW[envseg - 1:3] * 16;
  24.   envused:=0;
  25.   endfound:=false;
  26.   while not endfound do
  27.     if MemW[envseg:envused] = 0 then
  28.       endfound:=true
  29.     else
  30.       Inc(envused);
  31.   Inc(envused, 2);
  32.   caption2('Environment');
  33.   Writeln;
  34.   caption3('Segment');
  35.   Write(hex(envseg, 4));
  36.   caption3('Size');
  37.   Write(envlen:4);
  38.   caption3('Used');
  39.   Write(envused:4);
  40.   caption3('Free');
  41.   Writeln((envlen - envused):4);
  42.   caption2('Variables');
  43.   window(3, 7, twidth, tlength - 2);
  44.   for i:=1 to envcount do begin
  45.     pause2;
  46.     if endit then
  47.       Exit;
  48.     writeln(envstr(i))
  49.   end
  50.   end;
  51.